The present invention, in some embodiments thereof, relates to software development, more specifically, but not exclusively, to monitoring requirement and/or code elements integrity.
For large software development projects, it is easy to lose track of requirements and their implementation in the code. After a requirement is implemented, the code continues to evolve and the logic supporting that requirement may be changed or removed. In such software development projects, traceability links may be used for linking between requirements, such as product documentation requirements, and source code or a high level representation of the source code. Having traceability links between source code and requirements facilitate performing a variety of software maintenance tasks including impact analysis, program comprehension, and requirements assurance of high quality systems. For an observer or a text analysis module, these links help explain why a particular function or class exists in the program.
Various systems and methods have been developed in the last years. For example, U.S. Pat. No. 7,640,532 describes a connection which is established between the source code and the business requirements of a software system. User specified keyword that reflects business requirements are expanded using ontology and a thesaurus. The augmented list of user specified keywords are matched to the automatically annotated source code. The results of the match along with call graph of the source code are used to generate workflows that provide a mapping from the source code to business logic.
U.S. Patent Application No. 2008/0263504 describes various technologies and techniques that allow project requirements to be associated with underlying code elements. A particular software project is analyzed to generate a list of code elements contained in the particular software project. Input is received from a user of a requirements management application to associate one or more project requirements to one or more of the code elements. The project requirements and an association with the one or more code elements are stored in a data store for later retrieval. These associations are used to determine when changes that potentially affect the project requirement are made to the underlying code elements. A software development application is operable to interact with the data store and provide a notice to a user of the software development application that a change to a particular code element of the software project will impact one or more project requirements.